#include<iostream>
#include<vector>
#include<stack>
using namespace std;

vector<int> look(const vector<int>& nums) {
	vector<int>look(nums.size(), 1);
	stack<int> stack_;
	for (int i = nums.size() - 1; i >= 0; --i) {
		look[i] += stack_.size();
		while (!stack_.empty() && stack_.top() <= nums[i]) {
			stack_.pop();
		}
		stack_.push(nums[i]);
	}
	while (!stack_.empty())
		stack_.pop();
	for (int i = 0; i <nums.size(); ++i) {
		look[i] += stack_.size();
		while (!stack_.empty() && stack_.top() <= nums[i]) {
			stack_.pop();
		}
		stack_.push(nums[i]);
	}
	return look;

}

//int main() {
//	int num;
//	cin >> num;
//	vector<int> nums(num);
//	for (int i = 0; i < nums.size(); ++i) {
//		cin >> nums[i];
//	}
//	auto res=look(nums);
//	for (int i = 0; i < res.size(); ++i) {
//		cout << res[i] << " ";
//	}
//	cout << endl;
//
//}